Follow the API's ducking flip to default-off (0.11.3 / cli 0.9.0) - #26
Merged
Conversation
The server now treats an unset `ducking` as off on /v1/video-to-music,
/v1/video-to-sound, /v1/video-to-video-music and /v1/video-to-video-sound.
Both packages already omitted the field when unset, so nothing changes on
the wire -- but every comment and doc that explained the old default was
now wrong, and the CLI could only express the direction that had become
the default.
sonilo (0.11.2 -> 0.11.3, docs only):
* The request builders no longer justify omit-when-unset by naming which
way each default points -- that reasoning is what went stale. The rule
is that the server decides, and neither `ducking` nor
`keep_original_sound` is pinned here.
* build_v2s_parts' docstring now states what is specific to
/v1/video-to-sound: with no keep_original_sound field there, `ducking`
picks the voice source as well as the mix, so leaving it unset keeps
the source's own speech out of the deliverable entirely.
* dubbing's docstring no longer calls its default "the opposite of the
music endpoints'" -- every endpoint now defaults off.
* README: the video_to_music ducking bullet and example, the
video_to_video_music example, the sound-endpoint paragraph, and the
dubbing paragraph.
sonilo-cli (0.8.2 -> 0.9.0):
* --ducking added to video-to-sound, video-to-video-sound and
video-to-video-music. Without it the CLI cannot request ducking at all
now.
* --no-ducking is kept: dropping it would turn every script that passes
it into a hard argparse failure, and it now sends the explicit False
the server would have applied anyway. Passing both exits rather than
silently picking a winner.
Version drift fixed while bumping, pre-existing and unrelated to ducking:
`_version.py` was still 0.11.0 against pyproject's 0.11.2, and
`sonilo_cli/__init__.py` still 0.8.0 against 0.8.2. Those are the values
sent as `x-sonilo-client-version`, so 0.11.1, 0.11.2, 0.8.1 and 0.8.2 all
reported themselves as the older release. All four strings now agree. The
existing test only compares the header against `_version.py`, so it could
not catch the drift.
sonilo-cli's `sonilo>=0.11.0,<0.12` pin still holds -- the core stays on
0.11.x, so no widening is needed this round.
237 core tests and 88 CLI tests pass, run per package as CI does. (Running
both directories in one pytest invocation fails at collection because the
two packages both have a top-level `tests` package; that predates this
change and reproduces on a pristine main.)
Sapient docs evalsWaiting for the staging docs URL before running evals. Sapient will start the selected PR evals automatically when GitHub reports a successful docs deployment for this PR. This usually happens within 15 minutes. Commit: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The server now treats an unset
duckingas off on/v1/video-to-music,/v1/video-to-sound,/v1/video-to-video-musicand/v1/video-to-video-sound(dashboard PR #233, deployed).Both packages already omitted
duckingwhen unset and still do, so nothing changes on the wire. What changed is everything that explained the old default — and on the CLI, the only expressible direction was the one that is now the default.sonilo0.11.2 → 0.11.3 (docs only)duckingnorkeep_original_soundis pinned here.build_v2s_parts' docstring gained the thing specific to/v1/video-to-sound: with nokeep_original_soundfield on that endpoint,duckingpicks the voice source as well as the mix style, so leaving it unset keeps the source's own speech out of the deliverable entirely and produces nomusic_processedstem.video_to_musicducking bullet and example, thevideo_to_video_musicexample, the sound-endpoint paragraph, and the dubbing paragraph.sonilo-cli0.8.2 → 0.9.0The only behaviour change in this PR.
--duckingadded tovideo-to-sound,video-to-video-soundandvideo-to-video-music. Without it the CLI cannot request ducking at all now.--no-duckingis kept. Removing it would turn every existing script that passes it into a hard argparse failure. It now sends an explicitFalse, which is what the server would have applied anyway.Unrelated bug fixed while bumping versions
_version.pywas still0.11.0against pyproject's0.11.2, andsonilo_cli/__init__.pystill0.8.0against0.8.2. Those are the values sent asx-sonilo-client-version, so releases 0.11.1, 0.11.2, 0.8.1 and 0.8.2 all reported themselves as the older version in telemetry. All four strings now agree.The existing identity test only compares the header against
_version.py, so it compares the drifted value with itself and cannot catch this. Worth a CI check that ties_version.pytopyproject.toml— not added here to keep the diff on topic.sonilo-cli'ssonilo>=0.11.0,<0.12pin still holds, since the core stays on 0.11.x. No widening needed this round.Testing
237 core tests and 88 CLI tests pass, run per package as CI does. New CLI coverage pins
--ducking→ducking=true,--no-ducking→ducking=false, unset → field absent, and the both-flags rejection.Note: running both directories in a single
pytestinvocation fails at collection because each package has its own top-leveltestspackage. That predates this change and reproduces on a pristinemain.Note for
video_to_soundcallersThis is the one endpoint where the flip is user-visible without any other flag: callers who relied on the default no longer get the source speech in the result, with no error raised.